#ifndef SYMBOLLIBRARYDIALOG_H
#define SYMBOLLIBRARYDIALOG_H

#include <QObject>
#include <QDialog>
#include <QListWidget>
#include <QPushButton>
#include <QMap>

class SymbolLibraryDialog : public QDialog
{
    Q_OBJECT
public:
    explicit SymbolLibraryDialog(QWidget* parent = nullptr);

    void addSymbol(const QString &fileName);  // 添加符号文件到列表
    QString selectedSymbol() const;  // 返回选中的符号文件路径

private:
    QListWidget *symbolList = nullptr;
    QPushButton *addButton = nullptr;
    QPushButton *deleteButton = nullptr;
    QPushButton *loadButton = nullptr;

    void loadSymbolList();                    // 加载符号列表
    void saveSymbolList();                    // 保存符号列表

    //QMap<QString, QString> symbolPathMap; // 文件名与完整路径的映射

private slots:
    void onAddButtonClicked();                // 添加按钮的槽函数
    void onDeleteButtonClicked();             // 删除按钮的槽函数
    void onLoadButtonClicked();               // 载入按钮的槽函数

signals:
    void addSymbolInLib(const QString&);
    void symbolSelected(const QString&);

};

#endif // SYMBOLLIBRARYDIALOG_H
